This invention relates to the virtualization of computer systems and, in particular, to controlling and partitioning of logical processors in computer systems.
Varying degrees of processor virtualization are possible in computer systems providing advantages and disadvantages over the spectrum of possibilities. At one extreme of the spectrum are dedicated physical processors (CPs), which have the advantage of high hardware performance and low overhead, but have the disadvantage of inflexibility to meet varying workload demands. At the other extreme of the spectrum are logical processors (LCPs) with little or no affinity to the underlying physical resources, and therefore relatively high overhead due to context switching, cache dilution/thrashing, and hardware emulation as necessary. Between the spectrum extremes is processor affinity, where attempts are made to redispatch logical processors (LCPs) to the same physical processors (CPs) as frequently as possible. Redispatching logical processors (LCPs) to the same physical processors (CPs) helps to mitigate context switching and cache-thrashing overhead, although cache dilution and hardware-emulation overhead are still present to much the same degree by virtue of still having to share the same physical resources among the logical processors (LCPs).
One example of processor virtualization is described in the US Patent Application 20060107000 entitled PEER-BASED PARTITIONING METHOD FOR SYSTEM RESOURCE SHARING, published May 18, 2006. Therein, the physical resources of a system are divided into multiple logical partitions where each logical partition is a subset of the physical machine that acts as a virtual machine. A layer of software, called a “hypervisor,” controls the interaction between the various virtual machines. Any time a virtual machine wants to access a shared, physical resource, it does so through the hypervisor. The hypervisor acts as a master-control program. Any time a logical partition wants access to a physical resource, it goes through the hypervisor. The hypervisor monitors and is actively involved with each logical partition at the expense of introducing overhead into the processing. In the partitioning method, the overhead is reduced by logically partitioning the computer system into multiple virtual machines where sets of physical resources are partitioned into sets of logical partitions. Logical partitions contain one or more physical processors where typically one of the processors is a controller of the logical partitions.
Virtualization of computer systems and, in particular, controlling and partitioning of logical processors in computer systems provides flexibility but often also adversely affects the overhead and efficiency of the system. One measure of the efficiency of a computer system is the number of cycles (clock cycles) utilized per instruction (CPI). The lower the CPI, the greater the efficiency of the computer system. Another measure of efficiency specifies overhead comparing the amount of time (MT) the computer system spends managing the system relative to the amount of time (ET) the computer system spends executing user instructions. Using these definitions, the overhead, OVERHEAD, is expressed as a percentage as follows:OVERHEAD={(MT)/(MT+ET)}(100).
While the peer-based partitioning method described is useful in reducing the overhead of processor virtualization, there is still a need for improved methods of and systems for processor virtualization with even greater reductions in overhead.